const cp = require('child_process')

class OS {
    async createShortcut(shortcutFile, target, options) {
        throw new Error('此方法没有实现')
    }
    async createShortcutToDesktop(shortcutName, target, options) {
        throw new Error('此方法没有实现')
    }
    async exec(command) {
        return await new Promise((resolve, reject) => {
            cp.exec(command, (error, data) => {
                if (error) {
                    return reject(error)
                }
                resolve(data)
            })
        })
    }
    //#region File
    async hasFileMenu(id) {
        throw new Error('此方法没有实现')
    }
    async createFileMenu(id, label, target, icon) {
        throw new Error('此方法没有实现')
    }
    async deleteFileMenu(id) {
        throw new Error('此方法没有实现')
    }
    async createFileMenuCommand(id, command) {
        throw new Error('此方法没有实现')
    }
    //#endregion

    //#region Path
    async hasPathMenu(id) {
        throw new Error('此方法没有实现')
    }
    async createPathMenu(id, label, target, icon) {
        throw new Error('此方法没有实现')
    }
    async deletePathMenu(id) {
        throw new Error('此方法没有实现')
    }
    async createPathMenuCommand(id, command) {
        throw new Error('此方法没有实现')
    }
    //#endregion

    //#region Path-Background
    async hasBackgroundPathMenu(id) {
        throw new Error('此方法没有实现')
    }
    async createBackgroundPathMenu(id, label, command, icon) {
        throw new Error('此方法没有实现')
    }
    async deleteBackgroundPathMenu(id) {
        throw new Error('此方法没有实现')
    }
    async createBackgroundPathMenuCommand(id, command) {
        throw new Error('此方法没有实现')
    }
    //#endregion
}

module.exports = OS
